package com.kyh.util.chuanglan;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URLDecoder;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.SimpleHttpConnectionManager;
import org.apache.commons.httpclient.URI;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpClientParams;

import com.kyh.common.Result;

public class ChuanglanUtil {
	private static String URL_SEND = "http://sms.253.com/msg/"; // 应用地址
	private static String UN = "N6154527"; // 账号
	private static String PW = "TiqMJItDws888d"; // 密码
	
		/**
		 * 
		 * @param phone 手机号码，多个号码使用","分割
		 * @param msg 短信内容
		 * @param rd 是否需要状态报告，需要1，不需要0
		 * @return 返回值定义参见HTTP协议文档
		 * @throws Exception
		 */
	public static Result send(String phone, String msg) throws Exception {
		HttpClient client = new HttpClient(new HttpClientParams(),
				new SimpleHttpConnectionManager(true));
		GetMethod method = new GetMethod();
		try {
			URI base = new URI(URL_SEND, false);
			method.setURI(new URI(base, "send", false));
			method.setQueryString(new NameValuePair[] {
					new NameValuePair("un", UN), new NameValuePair("pw", PW),
					new NameValuePair("phone", phone),
					new NameValuePair("rd", "1"),
					new NameValuePair("msg", msg),
					new NameValuePair("ex", null), });
			int result = client.executeMethod(method);
			if (result == HttpStatus.SC_OK) {
				InputStream in = method.getResponseBodyAsStream();
				ByteArrayOutputStream baos = new ByteArrayOutputStream();
				byte[] buffer = new byte[1024];
				int len = 0;
				while ((len = in.read(buffer)) != -1) {
					baos.write(buffer, 0, len);
				}
				return Result.success(URLDecoder.decode(baos.toString(), "UTF-8"));
			} else {
//				throw new Exception("HTTP ERROR Status: " + method.getStatusCode() + ":" + method.getStatusText());
				return Result.failed("发送失败");
			}
		} finally {
			method.releaseConnection();
		}
	}

}